package com.chhuang.myplayer.base

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import org.jetbrains.anko.*

/**
 * activity的基类
 */
abstract class BaseActivity : AppCompatActivity(), AnkoLogger {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(getLayoutId())
        initListener()
        initData()
        info { "onCreate" }
        debug { "onCreate" }
        error { "onCreate" }
    }

    /**
     * 初始化数据
     */
    protected open fun initData() {

    }

    /**
     * 初始化监听
     */
    protected open fun initListener() {

    }

    /**
     * 获取布局ID
     */
    abstract fun getLayoutId(): Int

    /**
     * 线程安全的提示信息
     */
    protected fun toasts(message:String){
        runOnUiThread{toast(message)}
    }

    /**
     * 开启activity并且关闭当前界面，在打开新的界面中返回不用显示当前界面时用
     */
    inline fun <reified T:BaseActivity> startActivityAndFinish(){
        startActivity<T>()
        finish()
    }
}